This is an example of how Hypercard can administer a timed test, score it, and provide the test taker with the option to review those questions that were incorrect. The userLevel is set to 1 and the menuBar hidden on openStack for obvious reasons.
The amount of time to take the test can be changed by editing the 9th line of the mouseUp message handler of the exam button on the first card. It is currently set at 30 seconds per question for 10 questions. If the user exceeds the allowed time for the test, he/she is provided with the option to start over or go Home. The user is informed as to the amount of time allowed to take the test at the beginning.
The correct answer for a given question is easily changed by cutting and pasting the scripts of the answer buttons and editing the "set hilite.." commands of the button scripts so that they correspond to the appropriate button. One must also edit the closeCard and reView message handlers of each card's script to indicate the new correct answer such that Teststack will "know" if the question was answered correctly or incorrectly. Sounds laborious, but it is actually quite simple and quick.
If you like this or have suggestions for improvements or if you think this was a complete waste of download time, let me know.